home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1998 July / EnigmA AMIGA RUN 29 (1998)(G.R. Edizioni)(IT)[!][issue 1998-07 & 08].iso / earcd / phase5 / ppcrelease / tools / ppcinfos.c < prev    next >
C/C++ Source or Header  |  1998-02-21  |  2KB  |  106 lines

  1. #include <exec/types.h>
  2. #include <exec/libraries.h>
  3. #include <proto/exec.h>
  4. #include <proto/dos.h>
  5. #include <stdlib.h>
  6. #include <utility/tagitem.h>
  7. #include <PowerUP/pragmas/ppc_pragmas.h>
  8. #include <PowerUP/clib/ppc_protos.h>
  9. #include <PowerUP/PPCLib/ppc.h>
  10. #include "PPCInfos_VERSION.h"
  11.  
  12. UBYTE vers[] = VERSTAG;
  13.  
  14. extern struct ExecBase    *SysBase;
  15.  
  16. void    main(ULONG argc,char *argv[])
  17. {
  18. struct Library    *PPCLibBase;
  19. struct TagItem    MyTags[3];
  20. ULONG        CPU;
  21. char        *CPUString;
  22. ULONG        CPUCount;
  23. ULONG        CPUClock;
  24. ULONG        CPURev;
  25. ULONG        CPUPll;
  26. ULONG        i;
  27.  
  28.   if (PPCLibBase=OpenLibrary("ppc.library",0))
  29.   {
  30.     MyTags[0].ti_Tag    =    PPCINFOTAG_CPUCOUNT;
  31.     MyTags[1].ti_Tag    =    TAG_END;
  32.     CPUCount=PPCGetAttrs((struct TagItem*) &MyTags);
  33.  
  34.     for (i=0;i<CPUCount;i++)
  35.     {
  36.       MyTags[0].ti_Tag    =    PPCINFOTAG_CPU;
  37.       MyTags[0].ti_Data    =    i;
  38.       MyTags[1].ti_Tag    =    TAG_END;
  39.       CPU=PPCGetAttrs((struct TagItem*) &MyTags);
  40.  
  41.       switch (CPU)
  42.       {
  43.         case CPU_603:
  44.              CPUString="PPC603";
  45.              break;
  46.  
  47.         case CPU_604:
  48.              CPUString="PPC604";
  49.              break;
  50.  
  51.         case CPU_602:
  52.              CPUString="PPC602";
  53.              break;
  54.  
  55.         case CPU_603e:
  56.              CPUString="PPC603e";
  57.              break;
  58.  
  59.         case CPU_603p:
  60.              CPUString="PPC603p";
  61.              break;
  62.  
  63.         case CPU_604e:
  64.              CPUString="PPC604e";
  65.              break;
  66.  
  67.         default:
  68.              CPUString="Unknown";
  69.              break;
  70.       }
  71.  
  72.       MyTags[0].ti_Tag    =    PPCINFOTAG_CPUCOUNT;
  73.       MyTags[0].ti_Data    =    i;
  74.       MyTags[1].ti_Tag    =    TAG_END;
  75.       CPUCount=PPCGetAttrs((struct TagItem*) &MyTags);
  76.  
  77.       MyTags[0].ti_Tag    =    PPCINFOTAG_CPUCLOCK;
  78.       MyTags[0].ti_Data    =    i;
  79.       MyTags[1].ti_Tag    =    TAG_END;
  80.       CPUClock=PPCGetAttrs((struct TagItem*) &MyTags);
  81.  
  82.       MyTags[0].ti_Tag    =    PPCINFOTAG_CPUPLL;
  83.       MyTags[0].ti_Data    =    i;
  84.       MyTags[1].ti_Tag    =    TAG_END;
  85.       CPUPll=PPCGetAttrs((struct TagItem*) &MyTags);
  86.  
  87.       MyTags[0].ti_Tag    =    PPCINFOTAG_CPUREV;
  88.       MyTags[0].ti_Data    =    i;
  89.       MyTags[1].ti_Tag    =    TAG_END;
  90.       CPURev=PPCGetAttrs((struct TagItem*) &MyTags);
  91.  
  92.       Printf("CPU[%ld] 0x%04lx=%s CPURev 0x%04ld CPUClock %ldMhz CPUPLL 0x%lx\n",
  93.              i,
  94.              CPU,
  95.              CPUString,
  96.              CPURev,
  97.              CPUClock,
  98.              CPUPll);
  99.     }
  100.   }
  101.   else
  102.   {
  103.     Printf("No PPC library found\n");
  104.   }
  105. }
  106.